#ifndef MYCHESS_GRAPHICS_HEADER
#define MYCHESS_GRAPHICS_HEADER

#include <ncursesw/ncurses.h>   //编译的时候使用gcc *.c -lncursesw
#include <locale.h>
#include <fcntl.h>
#include "unistd.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include<mysql/mysql.h>
typedef enum{GCBlack,GCRed,GCGreen,GCYellow,GCBlue,GCMagenta,GCCyan,GCWhite,GCCount}GRAPHICS_COLOR;

typedef struct point
{
	int x;
	int y;
	struct point* next;		//用来制作栈
}POINT;

#define C_ATTR(a,f,b) 	((a)|COLOR_PAIR((f)*GCCount+(b)+1))
#define CURRENT_ATTRIBUTE C_ATTR(g_style,g_fore_color,g_back_color)


#define WIDTH		4
#define LENGTH	2
#define X_START	7
#define X_END		35
#define Y_START	10
#define Y_END		66
#define KEYUP 	0x30ff
#define KEYDOWN 	0x31ff
#define KEYLEFT 	0x32ff
#define KEYRIGHT 	0x33ff
#define ESC		27
#define SPACE		32
#define CHESS "● "//使用┏ ┗ ┓ ┛ ┳ ┻ ┣ ┫ ╋ ━ ┃画棋盘，也可以自己找另外的符号

/******************************************************************************/

bool init_graphics(void);			//初始化屏幕函数
void exit_graphics(void);			//退出函数
void clear_screen(int x,int y,int w,int h);	//清屏函数
int readkey(void);				//键盘读取函数，返回输入的键值 
void menu();					//菜单
void manAndMan();				//人人对战
void manAndComputer();				//人机对战
void computerStep(POINT* );			//机器算法
void drawChessboard();				//画出棋盘
void drawCursor(POINT );			//画出光标
void addChess(POINT ,POINT* );			//增加棋子(下棋)
void delChess(POINT*);				//减少棋子(悔棋)
void drawChess(POINT* );			//画出棋子
bool judgeVictor(POINT* );			//判断胜利
void ChessDisplay();				//棋盘重现
void GOON();					//继续游戏
void GOON_mm();					//继续游戏
void dsphelp();
void dsphead();
void talker();
void talker_sql(char*);
#endif
